package com.bjc.platform.repository;

import java.util.Collection;
import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import com.bjc.platform.model.AdmOrg;

/**
 * 
 * 组织管理与持久层操作接口
 * 
 */
public interface AdmOrgRepo extends JpaRepository<AdmOrg, Long> {

	/**
	 * 根据父Id查询其子信息
	 * 
	 * @param id
	 * @return
	 */
	List<AdmOrg> findByParentIdAndFlag(Long id, boolean flag);

	/**
	 * 查询全集团范围的指定类型的部门
	 * @param dTypes
	 * @return
	 */
	@Query("from AdmOrg org WHERE flag=1 and orgSubType.code in ?1")
	List<AdmOrg> findByDepartmentType(Collection<String> dTypes);

	/**
	 * 查询公司范围的指定类型的部门
	 * @param dTypes
	 * @return
	 */
	@Query("select org from AdmOrg org, AdmOrg porg WHERE org.flag=1 and org.companyId=porg.id and porg.id=?1 and porg.code=org.orgSubType.companyCode and org.orgSubType.code in ?2")
	List<AdmOrg> findByCompanyDepartmentType(Long id, Collection<String> dTypes);

	AdmOrg findByCodeAndFlag(String code, boolean b);
	
}
